package com.itany.corejava.code06_数组;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author: 石小俊
 * @date: 2023年03月07日 9:07
 * @version: 1.0
 */
public class Test09_练习 {

    public static void main(String[] args) {
        test2();
    }

    // 创建一个长度为5的int数组,要求向数组中随机存储1-30的整数,同时各个元素的值不重复
    public static void test1() {
        int[] numbers = new int[5];

        for (int i = 0; i < numbers.length; i++) {
            // 1-30的整数
            numbers[i] = (int) (Math.random() * 30 + 1);
            // 由于随机数可能存在重复,而需求是不允许重复
            // 因此,我们需要将每次生成的随机数与已经存放到数组中的数据进行比较
            // 只有不重复我们才会加入到数组中
            for (int j = 0; j < i; j++) {
                if (numbers[i] == numbers[j]) {
                    i--;
                    break;
                }
            }
        }
        System.out.println(Arrays.toString(numbers));
    }

    // 有三个班级,每个班级有5个学生,提示用户分别输入学生的成绩,将数据保存到二维数组中
    // 计算每个班级的平均分,全校的最高分与最低分
    public static void test2() {
        Scanner sc = new Scanner(System.in);
        double[][] scores = new double[3][5];

        // 定义全校的最高分、最低分
        double max = 0;
        double min = 100;

        // 外层循环控制班级
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个班级的学生成绩");
            // 定义每个班级的总成绩
            double sum = 0;
            // 内层循环控制班级的每个学生
            for (int j = 0; j < scores[i].length; j++) {
                System.out.print("请输入第" + (j + 1) + "个学生的成绩:");
                scores[i][j] = sc.nextDouble();
                sum += scores[i][j];
                // 判断当前输入的成绩是否高于当前最高分
                // 如果高于则直接交换
                if (scores[i][j] > max) {
                    max = scores[i][j];
                }
                // 判断当前输入的成绩是否低于当前的最低分
                // 如果低于则直接交换
                if (scores[i][j] < min) {
                    min = scores[i][j];
                }
            }
            double avg = sum / 5;
            System.out.println("第" + (i + 1) + "个班级的平均分为:" + avg);
        }
        System.out.println("全校最高分:" + max);
        System.out.println("全校最低分:" + min);
    }

}
